1. Field of the Invention
This invention generally relates to a method and to database structures that enable multi-language support for dynamic data, as part of an overall National Language Support (NLS) strategy. More specifically, the invention relates to a method that enables the persistent storage of textual data in multiple languages, concurrently, in a single database instance, and the retrieval for presentation of that data in a language appropriate for the specified NLS locale.
2. Background Art
When discussing systems applications, National Language Support refers to the ability to present information to users of an application with consideration for the particular linguistic and cultural preferences of a designated locale. In addition to the need to support multiple languages and dialects, these considerations include region-specific calendars, currency, date and time formatting, dictionary sorting, message formatting, number formatting, and text that flows in directions other than left-to-right.
Many NLS enablement functions (particularly those involving formatting) are the assigned responsibility of the presentation component of an application. This discussion, however, is focused on considerations for managing translatable, textual data and the persistent storage and retrieval of that data in multiple languages. Note that this refers specifically to storing the same piece of data in multiple languages and not simply to storing multiple pieces of data each in a different language.
Development of an NLS enabled application begins with a structuring of application components that effectively separates data from application logic, a technique known as “internationalization.” There is then a choice of design strategies, either “localization” or “globalization.” A localization approach involves adapting the application for a specific region and language, a process that must be repeated for each supported locale. Globalization refers to implementation of the application so that a single instance, simultaneously, accommodates any region and language.
The increasing use of web-based applications has enabled businesses to extend their area of operations beyond regional and national boundaries, and there is a corresponding need to develop and implement NLS enabled systems applications. In general, adoption of a globalization strategy delivers NLS enabled applications which are far less expensive to build and maintain. The key to globalization is the deployment of a single instance of each application for use around the world rather than duplicate parallel application instances each supporting a different locale.
The information presented to users of an application can be viewed as a combination of data that falls into three categories. There is, typically, “dynamic data” that has been captured and maintained through use of the application (either interactively by users or received from other system components), “static reference data” that is provided with the application and defines the valid context for the application's use (for example, the recognized set of status codes), and “other static information,” including titles, headings, and labels, that form the template on which data are presented to the user.
There is a considerable volume of literature available on NLS enablement techniques for static data, including both static reference data and user interface templates. In cases where products have implemented NLS enabled solutions, however, the multi-language capability is either limited to static data, or the implementation is based on a strategy of localization and requires the deployment of multiple database instances, each supporting a single locale.
Known solutions for NLS enablement do not implement a globalization strategy when addressing the need for the persistent storage of dynamic, textual data in multiple languages. Instead, the use of a localization strategy assumes either that access to the data in each application instance will be limited to the single, supported locale, or that the application will be supplemented with routines to replicate data in order to provide integration across application instances. The dependence on localization results in the increased cost of application deployment, operation, and maintenance, and the inherent risk of inconsistencies in data and processing logic.